import com.mysql.jdbc.MySQLConnection;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

//JDBC自带的interface,不能直接new,需要new一个实现interface的class实例
public class JDBCDemo {
    public static void main(String[] args) throws SQLException {
        //通过JDBC进行插入操作
        //JDBC写起来有点繁琐,步骤多
        //1.创建数据源(DataSource)
        DataSource dataSource = new MysqlDataSource();//来自于lib中的类,数据库厂商写的代码和JDBC对接
        //3306为mysql默认端口号,java111为操作数据库名字//关闭通信加密
        //设置url
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java111?characterEncoding=utf8&useSSL=false");
        //Url：唯一资源定位符,描述了服务器/服务器上的资源在网络上的位置.
        //用户名
        ((MysqlDataSource) dataSource).setUser("root");
        //密码
        ((MysqlDataSource) dataSource).setPassword("123456");
        //2.和数据库服务器建立连接
        Connection connection = dataSource.getConnection();
        //3.构造操作数据库的sql语句
        String sql = "insert into book values('三国演义','罗贯中',20,'小说')";
        //带有预编译功能的语句对象
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        //4.执行sql，把刚才解析好的语句发给数据库服务器了
        //返回值为int类型，表示操作结果影响了几行数据
        int n = preparedStatement.executeUpdate();
        System.out.println("影响了"+n+"行");
        //5.释放资源
        //释放语句对象和连接对象
        preparedStatement.close();
        connection.close();
    }
}
